home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- pccardctl eject
-
- # Get rid of any currently running dhclients
- killall dhclient dhclient3 2>/dev/null
-
- # First do all network interfaces that were brought up by ifupdown. These are
- # the only interfaces that we bring up on resume (the other ones are probably
- # managed by other tools, such as NetworkManager, and will be brought up
- # automatically). Due to logical interfaces, the interfaces that we pass to
- # ifdown are DIFFERENT than those that we pass to ifup, see Debian BTS #475002.
- IFDOWN_INTERFACES="`cat /var/run/network/ifstate | sed 's/=.*//'`"
- IFUP_INTERFACES="`cat /var/run/network/ifstate`"
-
- must_control_interface()
- {
- # Always skip lo
- test "$1" = "lo" && return 1
- for i in $SKIP_INTERFACES; do
- # Skip if listed in $SKIP_INTERFACES
- echo "$1" | grep -q "^$i" && return 1
- done
- return 0
- }
-
-
- # Shut down the interfaces (except lo, which can and should be kept up)
- for x in $IFDOWN_INTERFACES; do
- if must_control_interface $x ; then
- ifdown $x
- fi
- done
-
- # TODO: Tell NetworkManager to shut down networking at this point
-
- # Find the remaining running network interfaces...
- INTERFACES=`/sbin/ifconfig | awk '/^[^ ]+/ {print $1}'`
-
- # And shut them down (except lo, which can and should be kept up)
- for x in $INTERFACES; do
- if must_control_interface $x ; then
- ifconfig $x down
- fi
- done
-
-